getModelFromHomology Constructs a new model from a set of existing models and gene homology information. models a cell array of model structures to build the model from blastStructure a blastStructure as produced by getBlast or getBlastFromExcel getModelFor the name of the organism to build a model for. Must have hits in both directions to the organisms in models preferredOrder the order in which reactions should be added from the models. If not supplied, reactions will be included from all models, otherwise one gene will only result in reactions from one model (opt, default {}) strictness integer that specifies which reactions that should be included 1: Include only 1-1 orthologs (only include genes that map back to the original gene in the blast in the opposite direction) 2: Include the reactions for all genes below the cutoff 3: Include only best 1-1 orthologs (opt, default 1) onlyGenesInModels blast only against genes that exists in the models. This tends to import a larger fraction from the existing models but may give less reliable results. Has effect only if strictness=3 (opt, default false) maxE only look at genes with E-values <= this value (opt, default 10^-30) minLen only look at genes with overlap >= this value (opt, default 200) minSim only look at genes with similarity >= this value (opt, default 40 (%)) mapNewGenesToOld determines how to match genes if not looking at only 1-1 orthologs. Either map the new genes to the old or old genes to new. The default is to map the new genes (opt, default true) draftModel a model structure for the new organism The models in the models structure should have named the metabolites in the same manner, have their reversible reactions in the same direction (run sortModel), and use the same compartment names. To avoid keeping unneccesary old genes, the models should not have 'or'-relations in their grRules (use expandModel). Returns a model structure for the new organism. draftModel a new model structure Rasmus Agren, 2014-01-08
0001 function draftModel=getModelFromHomology(models,blastStructure,getModelFor,preferredOrder,strictness,onlyGenesInModels,maxE,minLen,minSim,mapNewGenesToOld) 0002 % getModelFromHomology 0003 % Constructs a new model from a set of existing models and gene 0004 % homology information. 0005 % 0006 % models a cell array of model structures to build the model 0007 % from 0008 % blastStructure a blastStructure as produced by getBlast or 0009 % getBlastFromExcel 0010 % getModelFor the name of the organism to build a model for. Must 0011 % have hits in both directions to the organisms in models 0012 % preferredOrder the order in which reactions should be added from the 0013 % models. If not supplied, reactions will be included from 0014 % all models, otherwise one gene will only result in reactions 0015 % from one model (opt, default {}) 0016 % strictness integer that specifies which reactions that should be included 0017 % 1: Include only 1-1 orthologs (only include genes that 0018 % map back to the original gene in the blast in the 0019 % opposite direction) 0020 % 2: Include the reactions for all genes below the cutoff 0021 % 3: Include only best 1-1 orthologs (opt, default 1) 0022 % onlyGenesInModels blast only against genes that exists in the models. 0023 % This tends to import a larger fraction from the existing 0024 % models but may give less reliable results. Has effect only 0025 % if strictness=3 (opt, default false) 0026 % maxE only look at genes with E-values <= this value (opt, default 10^-30) 0027 % minLen only look at genes with overlap >= this value (opt, 0028 % default 200) 0029 % minSim only look at genes with similarity >= this value (opt, 0030 % default 40 (%)) 0031 % mapNewGenesToOld determines how to match genes if not looking at only 0032 % 1-1 orthologs. Either map the new genes to the old or 0033 % old genes to new. The default is to map the new genes 0034 % (opt, default true) 0035 % 0036 % draftModel a model structure for the new organism 0037 % 0038 % The models in the models structure should have named the metabolites in 0039 % the same manner, have their reversible reactions in the 0040 % same direction (run sortModel), and use the same compartment names. 0041 % To avoid keeping unneccesary old genes, the models should not have 0042 % 'or'-relations in their grRules (use expandModel). 0043 % 0044 % Returns a model structure for the new organism. 0045 % 0046 % draftModel a new model structure 0047 % 0048 % Rasmus Agren, 2014-01-08 0049 % 0050 0051 %NOTE: "to" and "from" means relative the new organism 0052 0053 if nargin<4 0054 preferredOrder=[]; 0055 end 0056 if nargin<5 0057 strictness=1; 0058 end 0059 if nargin<6 0060 onlyGenesInModels=false; 0061 end 0062 if nargin<7 0063 maxE=10^-30; 0064 end 0065 if nargin<8 0066 minLen=200; 0067 end 0068 if nargin<9 0069 minSim=40; 0070 end 0071 if nargin<10 0072 mapNewGenesToOld=true; 0073 end 0074 0075 preferredOrder=preferredOrder(:); 0076 0077 %Check that all the information is in the blast structure 0078 modelNames=cell(numel(models),1); 0079 for i=1:numel(models) 0080 modelNames{i}=models{i}.id; 0081 end 0082 0083 %Assume for now that all information is there and that it's correct 0084 %This is important to fix since no further checks are being made! 0085 0086 %Remove all gene matches that are below the cutoffs 0087 for i=1:numel(blastStructure) 0088 indexes=blastStructure(i).evalue<maxE & blastStructure(i).aligLen>=minLen & blastStructure(i).identity>=minSim; %Do it in this direction to lose NaNs 0089 blastStructure(i).toGenes(~indexes)=[]; 0090 blastStructure(i).fromGenes(~indexes)=[]; 0091 blastStructure(i).evalue(~indexes)=[]; 0092 blastStructure(i).aligLen(~indexes)=[]; 0093 blastStructure(i).identity(~indexes)=[]; 0094 end 0095 0096 %Remove all reactions from the models that have no genes encoding for them. 0097 %Also remove all genes that encode for no reactions. There shouldn't be any 0098 %but there might be mistakes 0099 for i=1:numel(models) 0100 [hasGenes, ~]=find(models{i}.rxnGeneMat); 0101 hasNoGenes=1:numel(models{i}.rxns); 0102 hasNoGenes(hasGenes)=[]; 0103 0104 models{i}=removeReactions(models{i},hasNoGenes,true,true); 0105 end 0106 0107 %Create a structure that contains all genes used in the blasts in any 0108 %direction for each of the models in models and for the new new organism 0109 %The first cell is for the new organism and then according to the preferred 0110 %order. If no such order is supplied, then according to the order in 0111 %models. 0112 allGenes=cell(numel(models)+1,1); 0113 if isempty(preferredOrder) 0114 useOrder=modelNames; 0115 else 0116 useOrder=preferredOrder; 0117 end 0118 0119 %Get the corresponding indexes for those models in the models structure 0120 useOrderIndexes=zeros(numel(models),1); 0121 for i=1:numel(models) 0122 [~, index]=ismember(models{i}.id,useOrder); 0123 useOrderIndexes(index)=i; 0124 end 0125 0126 %Remove all genes from the blast structure that have no genes in the models 0127 if onlyGenesInModels==true 0128 modelGenes={}; 0129 for i=1:numel(models) 0130 modelGenes=[modelGenes;models{i}.genes]; 0131 end 0132 for i=1:numel(blastStructure) 0133 %Check to see if it should match the toId or fromId 0134 if strcmpi(blastStructure(i).fromId,getModelFor) 0135 I=ismember(blastStructure(i).toGenes,modelGenes); 0136 else 0137 I=ismember(blastStructure(i).fromGenes,modelGenes); 0138 end 0139 blastStructure(i).fromGenes(~I)=[]; 0140 blastStructure(i).toGenes(~I)=[]; 0141 blastStructure(i).evalue(~I)=[]; 0142 blastStructure(i).aligLen(~I)=[]; 0143 blastStructure(i).identity(~I)=[]; 0144 0145 %Check that no matching in blastStructure is empty. This happens if 0146 %no genes in the models are present in the corresponding sheet 0147 if isempty(blastStructure(i).fromGenes) 0148 EM=['No genes in matching from ' blastStructure(i).fromId ' to ' blastStructure(i).toId ' are present in the corresponding model']; 0149 dispEM(EM); 0150 end 0151 end 0152 end 0153 0154 %If only best 1-1 orthologs are to be used then all other measurements are 0155 %deleted from the blastStructure. All code after this stays the same. This 0156 %means that preferred order can still matter. The best ortholog scoring is 0157 %based only on the E-value 0158 if strictness==3 0159 for i=1:numel(blastStructure) 0160 keep=false(numel(blastStructure(i).toGenes),1); 0161 [allFromGenes, ~, I]=unique(blastStructure(i).fromGenes); 0162 0163 %It would be nice to get rid of this loop 0164 for j=1:numel(allFromGenes) 0165 allMatches=find(I==j); 0166 bestMatches=allMatches(blastStructure(i).evalue(allMatches)==min(blastStructure(i).evalue(allMatches))); 0167 0168 %Keep the best matches 0169 keep(bestMatches)=true; 0170 end 0171 0172 %Delete all matches that were not best matches 0173 blastStructure(i).fromGenes(~keep)=[]; 0174 blastStructure(i).toGenes(~keep)=[]; 0175 blastStructure(i).evalue(~keep)=[]; 0176 blastStructure(i).aligLen(~keep)=[]; 0177 blastStructure(i).identity(~keep)=[]; 0178 end 0179 end 0180 0181 useOrder=[{getModelFor};useOrder]; 0182 0183 for i=1:numel(blastStructure) 0184 [~, toIndex]=ismember(blastStructure(i).toId,useOrder); 0185 [~, fromIndex]=ismember(blastStructure(i).fromId,useOrder); 0186 0187 %Add all genes to the corresponding list in allGenes 0188 allGenes{toIndex}=[allGenes{toIndex};blastStructure(i).toGenes]; 0189 allGenes{fromIndex}=[allGenes{fromIndex};blastStructure(i).fromGenes]; 0190 end 0191 0192 %Keep only the unique gene names 0193 maxOtherGeneNr=0; %Determines the dimension of the connectivity matrixes 0194 for i=1:numel(allGenes) 0195 allGenes{i}=unique(allGenes{i}); 0196 if i>1 0197 if numel(allGenes{i})>maxOtherGeneNr 0198 maxOtherGeneNr=numel(allGenes{i}); 0199 end 0200 end 0201 end 0202 0203 %Generate a cell array of matrixes the describes how the genes in the new 0204 %organism map to the models. Each cell matches to the corresponding model in 0205 %useOrder (starting at 2 of course). First dimension is gene in new organsism, 0206 %second which gene it is in the other organism. The second matrix describes 0207 %how they map back. 0208 0209 %As it is now, a significant match is indicated by a 1. This could be 0210 %expanded to contain some kind of significance level. The first dimension 0211 %is still the genes in the new model. 0212 0213 allTo=cell(numel(useOrder)-1,1); 0214 allFrom=cell(numel(useOrder)-1,1); 0215 0216 for i=1:numel(useOrder)-1 0217 allTo{i}=sparse(numel(allGenes{1}),numel(allGenes{i+1})); 0218 allFrom{i}=sparse(numel(allGenes{1}),numel(allGenes{i+1})); 0219 end 0220 0221 %Fill the matches to other species 0222 for i=1:numel(blastStructure) 0223 if strcmp(blastStructure(i).toId,getModelFor) 0224 %This was to the new organism 0225 %They should all match so no checks are being made 0226 [~, a]=ismember(blastStructure(i).toGenes,allGenes{1}); 0227 [~, fromModel]=ismember(blastStructure(i).fromId,useOrder); 0228 [~, b]=ismember(blastStructure(i).fromGenes,allGenes{fromModel}); 0229 idx = sub2ind(size(allTo{fromModel-1}), a, b); 0230 allTo{fromModel-1}(idx)=1; 0231 else 0232 %This was from the new organism 0233 [~, a]=ismember(blastStructure(i).fromGenes,allGenes{1}); 0234 [~, toModel]=ismember(blastStructure(i).toId,useOrder); 0235 [~, b]=ismember(blastStructure(i).toGenes,allGenes{toModel}); 0236 idx = sub2ind(size(allFrom{toModel-1}), a, b); 0237 allFrom{toModel-1}(idx)=1; 0238 end 0239 end 0240 0241 %Now we have all the gene matches in a convenient way. For all the genes in 0242 %the new organism get the genes that should be included from other 0243 %organisms. If all genes should be included this simply means keep the 0244 %allFrom matrix as is is. If only 1-1 orthologs are to be included then only 0245 %those elements are kept. 0246 0247 finalMappings=cell(numel(useOrder)-1,1); 0248 if strictness==1 || strictness==3 0249 for j=1:numel(allFrom) 0250 finalMappings{j}=allTo{j}~=0 & allFrom{j}~=0; 0251 end 0252 else 0253 if mapNewGenesToOld==true 0254 finalMappings=allFrom; 0255 else 0256 finalMappings=allTo; 0257 end 0258 end 0259 0260 %Remove all genes from the mapping that are not in the models. This doesn't 0261 %do much if only genes in the models were used for the original 0262 %mapping. Also simplify the finalMapping and allGenes structures so that 0263 %they only contain mappings that exist 0264 usedNewGenes=false(numel(allGenes{1}),1); 0265 0266 for i=1:numel(allGenes)-1 0267 %First remove mappings for those genes that are not in the model 0268 if onlyGenesInModels==false 0269 a=ismember(allGenes{i+1},models{useOrderIndexes(i)}.genes); 0270 finalMappings{i}(:,~a)=false; 0271 end 0272 0273 %Then remove unused ones and simplify 0274 [a, b]=find(finalMappings{i}); 0275 usedGenes=false(numel(allGenes{i+1}),1); 0276 usedNewGenes(a)=true; 0277 usedGenes(b)=true; 0278 finalMappings{i}=finalMappings{i}(:,usedGenes); 0279 allGenes{i+1}=allGenes{i+1}(usedGenes); 0280 end 0281 0282 %Remove all new genes that have not been mapped to anything 0283 allGenes{1}=allGenes{1}(usedNewGenes); 0284 for i=1:numel(finalMappings) 0285 finalMappings{i}=finalMappings{i}(usedNewGenes,:); 0286 end 0287 0288 %Now is it time to choose which reactions should be included from which 0289 %models. If there is a preferred order specified then each gene can only 0290 %result in reactions from one model, otherwise they should all be included 0291 0292 %Start by simplifying the models by removing genes/reactions that are 0293 %not used. This is where it gets weird with complexes, especially "or" complexes. 0294 %In this step only reactions which are encoded by one single gene, or where all 0295 %genes should be deleted, are deleted. The info on the full complex is still 0296 %present in the grRules 0297 0298 for i=1:numel(models) 0299 a=ismember(models{useOrderIndexes(i)}.genes,allGenes{i+1}); 0300 0301 %Don't remove reactions with complexes if not all genes in the complex 0302 %should be deleted. 0303 %NOTE: This means that not all the genes in 'a' are guaranteed to be 0304 %deleted. This approach works fine for 'and' complexes, but there 0305 %should be a check that it doesn't keep 'or' genes if it doesn't have 0306 %to! 0307 models{useOrderIndexes(i)}=removeGenes(models{useOrderIndexes(i)},~a,true,false); 0308 end 0309 0310 %Since I want to use mergeModels in the end, I simplify the models further 0311 %by deleting genes/reactions in the order specified by preferredOrder. This 0312 %means that the last model will only contain reactions for genes that 0313 %mapped only to that model 0314 0315 allUsedGenes=false(numel(allGenes{1}),1); 0316 0317 if ~isempty(preferredOrder) && numel(models)>1 0318 [usedGenes, ~]=find(finalMappings{1}); %All that are used in the first model in preferredOrder 0319 allUsedGenes(usedGenes)=true; 0320 for i=2:numel(finalMappings) 0321 [usedGenes, ~]=find(finalMappings{i}); 0322 usedGenes=unique(usedGenes); 0323 a=ismember(usedGenes,find(allUsedGenes)); 0324 0325 [~, genesToDelete]=find(finalMappings{i}(usedGenes(a),:)); %IMPORTANT! IS it really correct to remove all genes that map? 0326 genesToDelete=unique(genesToDelete); %Maybe not needed, but for clarity if nothing else 0327 0328 %Remove all the genes that were already found and add the other 0329 %ones to allUsedGenes 0330 [models{useOrderIndexes(i)}, notDeleted]=removeGenes(models{useOrderIndexes(i)},allGenes{i+1}(genesToDelete),true,false); 0331 allUsedGenes(usedGenes)=true; 0332 0333 %Remove the deleted genes from finalMappings and allGenes 0334 %Don't remove the genes in notDeleted, they are part of complexes 0335 %with some non-mapped genes 0336 deletedIndexes=~ismember(allGenes{i+1}(genesToDelete),notDeleted); 0337 finalMappings{i}(:,genesToDelete(deletedIndexes))=[]; 0338 allGenes{i+1}(genesToDelete(deletedIndexes))=[]; 0339 end 0340 end 0341 0342 %Now loop through the models and update the gene associations. Genes not 0343 %belonging to the new organism will be renamed as 'OLD_MODELID_gene' 0344 for i=1:numel(models) 0345 %Find all the new genes that should be used for this model 0346 [newGenes, oldGenes]=find(finalMappings{i}); 0347 0348 %Create a new gene list with the genes from the new organism and those 0349 %genes that could not be removed 0350 replaceableGenes=allGenes{i+1}(unique(oldGenes)); 0351 nonReplaceableGenes=setdiff(models{useOrderIndexes(i)}.genes,replaceableGenes); 0352 fullGeneList=[allGenes{1}(unique(newGenes));nonReplaceableGenes]; 0353 0354 %Just to save some indexing later. This is the LAST index of 0355 %replaceable ones 0356 nonRepStartIndex=numel(unique(newGenes)); 0357 0358 %Construct a new rxnGeneMat 0359 newRxnGeneMat=sparse(numel(models{useOrderIndexes(i)}.rxns),numel(fullGeneList)); 0360 0361 %Now update the rxnGeneMat matrix. This is a little tricky and could 0362 %probably be done in a more efficient way, but I just loop through the 0363 %reactions and add them one by one 0364 for j=1:numel(models{useOrderIndexes(i)}.rxns) 0365 %Get the old genes encoding for this reaction 0366 [~, oldGeneIds]=find(models{useOrderIndexes(i)}.rxnGeneMat(j,:)); 0367 0368 %Update the matrix for each gene. This includes replacing one gene 0369 %with several new ones if there were several matches 0370 for k=1:numel(oldGeneIds) 0371 %Match the gene to one in the gene list. This is done as a text 0372 %match. Could probably be done better, but I'm a little lost in 0373 %the indexing 0374 0375 geneName=models{useOrderIndexes(i)}.genes(oldGeneIds(k)); 0376 0377 %First search in the mappable genes 0378 mapIndex=find(ismember(allGenes{i+1},geneName)); 0379 0380 if ~isempty(mapIndex) 0381 %Get the new genes for that gene 0382 [a, ~]=find(finalMappings{i}(:,mapIndex)); 0383 0384 %Find the positions of these genes in the final gene list 0385 [~, b]=ismember(allGenes{1}(a),fullGeneList); 0386 0387 %Update the matrix 0388 newRxnGeneMat(j,b)=1; 0389 0390 %Update the grRules string. This is tricky, but I hope 0391 %that it's ok to replace the old gene name with the new one 0392 %and add ') or (' if there were several matches. Be sure of 0393 %this! 0394 repString=fullGeneList{b(1)}; 0395 for l=2:numel(b) 0396 repString=[repString ') or (' fullGeneList{b(l)}]; 0397 end 0398 models{useOrderIndexes(i)}.grRules{j}=strrep(models{useOrderIndexes(i)}.grRules{j},geneName{1},repString); 0399 else 0400 %Then search in the non-replaceable genes. There could only 0401 %be one match here 0402 index=find(ismember(nonReplaceableGenes,geneName)); 0403 0404 %Update the matrix 0405 newRxnGeneMat(j,nonRepStartIndex+index)=1; 0406 0407 models{useOrderIndexes(i)}.grRules{j}=strrep(models{useOrderIndexes(i)}.grRules{j},geneName{1},strcat('OLD_',models{useOrderIndexes(i)}.id,'_',geneName{1})); 0408 end 0409 end 0410 end 0411 0412 %Add the new list of genes 0413 models{useOrderIndexes(i)}.rxnGeneMat=newRxnGeneMat; 0414 if ~isempty(nonReplaceableGenes) 0415 models{useOrderIndexes(i)}.genes=[allGenes{1}(unique(newGenes));strcat('OLD_',models{useOrderIndexes(i)}.id,'_',nonReplaceableGenes)]; 0416 else 0417 models{useOrderIndexes(i)}.genes=allGenes{1}(unique(newGenes)); 0418 end 0419 if isfield(models{useOrderIndexes(i)},'geneComps') 0420 geneComps=models{useOrderIndexes(i)}.geneComps(1); 0421 models{useOrderIndexes(i)}.geneComps=zeros(numel(models{useOrderIndexes(i)}.genes),1); 0422 % Assume that all genes are in the same compartment, and this 0423 % compartment is specified for the first gene 0424 models{useOrderIndexes(i)}.geneComps(:)=geneComps; 0425 end 0426 end 0427 0428 %Now merge the models. All information should be correct except for 'or' 0429 %complexes 0430 draftModel=mergeModels(models); 0431 0432 %Change description of the resulting model 0433 draftModel.id=getModelFor; 0434 description='Generated by getModelFromHomology using '; 0435 for i=1:numel(models) 0436 if i<numel(models) 0437 description=[description models{i}.id]; 0438 else 0439 description=[description ', ' models{i}.id]; 0440 end 0441 end 0442 draftModel.description=description; 0443 draftModel.rxnNotes=cell(length(draftModel.rxns),1); 0444 draftModel.rxnNotes(:)={'Reaction included by getModelFromHomology'}; 0445 draftModel.confidenceScores=cell(length(draftModel.rxns),1); 0446 draftModel.confidenceScores(:)={'2'}; 0447 end


---
layout: definitions
---
Let $V$, $W$ be vector spaces. Then the space of linear transformations from $V$ to $W$ is the set of all linear transformations from $V$ to $W$, and is denoted $\mathcal{L}(V, W)$.
$\mathcal{L}(V, V)$ is often denoted with $\mathcal{L}(V)$.
Concepts
Used In
Coming soon
Hypothesis
Coming soon
Results
Coming soon


Hi, my name is Scott Weiss, and welcome to my website I have over four years of experience working in digital marketing. Currently I work as a Marketing Manager for Fairwinds, assisting the director of marketing with content, inbound, and growth-marketing strategies. Some of my competencies include: Google Analytics, Google Adwords, Shopify, Photoshop, Illustrator, MailChimp, Facebook Advertising, Twitter Advertising, LinkedIn Advertising, Wordpress, Balsamiq, Hubspot, Marketo, HTML5 & CSS. Note: This website is currently where I practice front-end development. It may be messy at times.
See the Pen Wolfgang Amadeus Mozart Tribute Page by Scott Weiss (@scottyweiss) on CodePen.
See the Pen Wolfgang Amadeus Mozart Tribute Page by Scott Weiss (@scottyweiss) on CodePen.


--- layout: post title: "Week in Review" date: 2023-06-05 12:01:00 +0000 tags: image: imagecredits: https://audreywatters.com ---
It's almost the end of Monday, and typically I try to get all my writing done in the mornings. Once it gets to be afternoon, I find it hard to write. (The challenge here is that I find the same to be true for running: so I try to front-load my days as much as possible so I can just collapse with a book after midday. Let's call it "research.")
We hiked up Kerby Peak today — almost 8 miles, with some 2700 feet of elevation gain. I'm not hurting too badly — a double cheeseburger and an hour-and-a-half long nap helped — but Kin and Poppy are a little beat-up.
So it's just a quick week-in-review — a bulleted list of things without the energy to add the little bullets. I can't even upload photos as there's no WiFi in this campground. Pathetic.
Anyway, I'm saving the photos for my "What's Good" newsletter on Friday. Second Breakfast officially launches on Sunday, and as I haven't looked at the news at all this week, what with being on the road, subscribers'll have to make due with photos of the flowers I saw today and reviews of the breakfast items I've eaten on the road. Today was a breakfast burrito — a bit heavy in the belly for the climb in the heat.
I announced Second Breakfast to HEWN this week, and I've been overwhelmed with the response. That's nice. I feel like maybe I am a writer again.
On our way out of town, we ate at Bud's Giant Burgers in Vallejo — perhaps the best burger I've ever had in my life. (Ate a double cheeseburger then too.)
We're headed to Bolan Lake tomorrow — a hike we weren't able to do last summer because of forest fire. Not sure what our legs will be able to handle; not sure what state the area will be in.


I'm a title, in an H1 tag
I'm a paragraph, in a paragraph tag
And both the paragraph and the h1 are inside a div


Select your privacy method {{ privacyValue }}
Your privacy setting has being updated!.
Public - Anyone registered in the system can view your profile.
Shared - Only your batch mates can view your profile
Private - Only you can view your profile
{{ savingData ? 'Saving' : 'Save' }}


Select a table
artists
playlists
songs
Add new item
Required Fields
Table name:
artists
playlists
songs
Name:
Optional Fields
Composer:
Duration (in minutes):
Size (Kbytes):
Price (pounds):
save item


ZEDAS GmbH develops software products for the logistics management of rail transport and for the asset management of vehicle fleets and technical asset management.
Business or sector: Rail cargo logistics
Growing from Junior Software Engineer to Project Manager and Software Architect for the development and planing of the 3D modelling software suite IGMAS+ (Interactive Geophysical Modelling ASsistant).
Business or sector: Research, Oil and Gas Industry, Universities
Diploma thesis "Kollaborative Applikationen in der virtuellen Mikroskopie": Planning and implementation of a client-server solution for collaborative working and displaying of digital tissue sections in the virtual pathology.
Business or sector: Research, Digital Microscope
Study Project "Evaluation von JPEG2000 Image-Streaming Bibliotheken": Creating a test environment for various JPEG2000 Image streaming libraries (C ++, C #) analysis and presentation of the test results.
Business or sector: Research, Digital Microscope
Practical semester in the PCSoft GmbH "Erweiterung der Zedas Software Suite": Expansion of the software solution for logistics and facility management of rail and transport companies.
Business or sector: Application Development


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object coins.simd.AlignmentTest
Class for testing alignment
| Nested Class Summary | |
(package private) class |
AlignmentTest.Alignment
Class for alignment info.data |
| Constructor Summary | |
AlignmentTest(Function func)
Constructs a AlignmentTest object |
| Method Summary | |
BiList |
doIt()
Checks alignments of statements in each basic blocks |
LirNode |
memAccessOverlappingTest()
Makes condition codes of overlapping of memory access |
BiList |
srcAlignments()
Returns srcAlignments |
BiList |
tgtAlignments()
Returns tgtAlignments |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public AlignmentTest(Function func)
| Method Detail |
public BiList doIt()
public LirNode memAccessOverlappingTest()
public BiList srcAlignments()
public BiList tgtAlignments()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


SaleProPOS is a software that will help you to manage your inventory, accounting and hrm. We believe that this software is suitable for both wholesale and retail buisness model and an ideal product for any Super Shop. This user friendly software is fully responsive and has many features. Hope that this software will be helpful to manage your buisness inventory.
All our products are designed on most popular PHP framework Laravel. You need to have minimum requirement for running all our application. Please make sure that you have completed these requirements.
Please note if you try to install the application on any other server say LiteSpeed or IIS, you may get undesirable result. We do not recommend you to use other server than Apache or Nginx. Also we do not provide support for installation in server other than Apache.
First Upload the salepropos.zip file to server. Then extract the zip file. Make sure that your server is showing hidden(.dot files) files.
After that login with username:admin password:admin
Watch is a video demonstrating the steps stated above. (you'll need internet connection to play the video)
You can also watch this video on youtube
You can update the software very easily by following 4 steps:
Please follow the following spanshots carefully to merge database:
Open the software.
Select your source and target database and click compare now.
After comparing successfully two database click ok.
Then select the checkbox and click Diployment Wizard.
Uncheck the Recompare after deployment checkbox and click next.
Click Deploy now.
Click Ok.
Thats all! You have just updated the database. Now follow step 4 as we described earlier.
You can update the software very easily by following 2 steps:
Still facing problem? Don't worry! We can update your software for USD 15. Please contact us at<EMAIL_ADDRESS>First you have to install your printer driver. Then go to settings and select Devices.
Then go to Devices and printers.
Set your POS printer as default printer.
Then go to Printing preferences.
Then go to Advanced.
Select 3rd option of paper size and click Ok.
After that go to printer properties.
Go to device settings and select 3rd option of auto.
Please make sure you choose correct paper size(3rd option) when you want to print the invoice.
To add mail functionality to your inventory you have to setup mail server first. To do this go to Mail Setting under Setting module. You have to fill up the following information.
We have a gorgeous looking dashboard for our customer from where they get Revenue, Sale Return, Purchase Return and Profit information of today / last 7 days / current month / current year at a glance by one click.

You also aware of your current month's purchase, revenue expenditure froms this doughnut chart.
A bar chart shows Yearly report of purchases and sales of current year.
From Dashboard You will also get recent transaction(sale, purchase, quotation, payment) and top 5 best selling product of current month and current year.
You can add, edit and delete product category. You can also import category from CSV file and export table data to PDF and CSV. Also you can print data from table.
If you dont want to export any column you can do this by clicking Column Visibility button. From here you can choose column to remove from table.
To export data from specific row you just have to check the checkbox of the related row
If you want to delete all the row from table you can do this very easily as shown below. You can also delete specific row from table.
If you want to search anything from the table you can simply type the word in the search box.
You can also control the pagination from Show dropdown.
In product section you will just add general information of a product. To add stock you have to purchase that product. You can create three types of product in SaleProPOS.
You can add, edit and delete product. You can import product from CSV. You must follow the instruction to import data from CSV. To get better understanding you can download the sample file.
You can sort table data according to column
And you can search, export and print data from table that we discussed earlier in greater detail.
In Product section you just added general information of product. So where the stock comes from? To add stock you have to purchase that product for specific warehouse. This software is pretty smart that it will automatically update the stock quantity and you don't have to worry about it.
You can create purchase in Purchase module. By creating purchase the stock quantity of product will be increased. .There are three purchase status: Recieved, Partial, Pending, Orderd. You can add product to order table by typing or scanning barcode of product
You can also edit product info from order table.
After creating purchase you will be redirected to purchase index page. You will get summary of purchase from table. To get details you just have to click in the table row.
You can import sale from CSV.You must follow the instruction to import data from CSV. To get better understanding you can download the sample file.
You can make payment from Purchase table. You can make payment with Cash, Gift Card, Cheque, Credit card and Deposit.
And you can search, export and print data from table that we discussed in Product section.
You can create sale from POS. Customer, Warehouse and Biller (representative of your company) will be automatically selected according to POS Settings under Settings module. Touch screen keybord is activated in POS module. You can add product to order table by typing or scanning barcode of product. Featured Product will be displayed in the right side. You can also add product by clicking product image. You can edit product info from order table.
To add order discount, order tax and shipping cost you just have to click the button that are shown below. To finalize the sale you have to click the Payment button.
After creating sale you will be redirected to sale index page. A confirmation mail will be sent automatically to customer's email with sale details. You will get summary of sale from table. To get details you just have to click in the table row.
You can also generate Invoice automatically which is beutifully designed
You can also create sale by clicking Add Sale button. Also you can import sale from CSV.You must follow the instruction to import data from CSV. To get better understanding you can download the sample file.
You can make payment from Sale table. You can make payment with Cash, Cheque, Credit Card, Gift Card, Deposit and Paypal. A confirmation mail will be sent automatically to customer's email with payment details.
And you can search, export and print data from table that we discussed in Product section.
You can add delivery for your sold products. A confirmation mail will be sent automatically to customer's email with delivery details.
And you can search, export and print data from table that we discussed in Product section.
You can sell GiftCard to customer. By using gift card customer can purchase product. Again GiftCard can be recharged. Customer will be notified by mail when assigning or recharging a GiftCard.
You can create, edit and delete expense category in Expense module.
You can create, edit and delete expense in Expense module.
And you can search, export and print data from table that we discussed in Product section.
You can create quotation in Quotation module. There are two quotation status: Pending and Sent
If quotation status is Sent a confirmation mail will be sent automatically to customer's email with quotation details.
You can create sale from Quotation.
You can create purchase from Quotation.
And you can search, export and print data from table that we discussed in Product section.
You can adjust product quantity in Quantity Adjustment module. There will be two operation: Subtraction and Addition
And you can search, export and print data from table that we discussed in Product section.
You can count your stock from this module. Two types are available: Full and Partial. In Partial type user have to specify brand and category and the software will automatically count the stock for that brand or category. Then this information will be written in CSV file which you have to download to finalize the stock count. Please follow the instruction properly. After finalizing the stock count you can automatically adjust the quantity of products if it is necessary.
You can transfer your product from one warehouse to another in Transfer module. You can also transfer product with CSV file. You must follow the instruction to import data from CSV. To get better understanding you can download the sample file. You will get details of transfer by clicking in the table row.
And you can search, export and print data from table that we discussed in Product section.
You can return your product with Return module. You can track return of both purchase and sale with this module. A confirmation mail will be sent automatically to customer's email with return details if customer refund products. Again if you return product to supplier a confirmation mail will be sent automatically to supplier's email with return details. You will get details of return by clicking in the table row.
And you can search, export and print data from table that we discussed in Product section.
You can create,edit and delete account to link all your transactions. You can also set default account for sale. All the payments must be done under an account.
You can generate Balance Sheet of your accounts. You can also make Account Statement of an specific account to see all the transactions which has done with this account.
You can create,edit and delete department of your company.
You can create,edit and delete employee of your company. You can also give user access to employee.
You can take employee attendance with this software. You can set CheckIn and CheckOut time in HRM Setting option under Setting Module.
You can make payroll of your employee with this software. All payroll must be done from an specipic account.
You can create, edit and delete user account. By creating user account password will be sent to the user's email that is given. Again you can active or inactive a user.
There is also be a register option to create user account. But his/her ID will not be activated untill admin will approve it.
You can create, edit and delete customer. After creating customer a confirmation email will automatically send to customer. You can add money to customer's database just like a bank account. You can also import customer with CSV file. You must follow the instruction to import data from CSV.
Biller is the representative of your company.  So this is a solution for enterprise. You can create, edit and delete biller. After creating biller a confirmation email will automatically send to biller. You can also import biller with CSV file. You must follow the instruction to import data from CSV.
Supplier is the people from whom you purchase products. You can create, edit and delete supplier. After creating supplier a confirmation email will automatically send to supplier. You can also import supplier with CSV file. You must follow the instruction to import data from CSV.
And you can search, export and print data from table that we discussed in Product section.
You can create generate various reports automatically by using SaleProPOS.
You can create, edit and delete user roles. You can controll user access by changing the role permission. So, under a certain role users have specific access over this software
You can create, edit and delete warehouse. You can also import warehouse with CSV file. You must follow the instruction to import data from CSV.
You can create, edit and delete customer group. Different customer group has different price over the product. You can modify this by changing price percentage in Customer Group module.
You can also import customer group with CSV file. You must follow the instruction to import data from CSV.
You can create, edit and delete product brand. You can also import brand with CSV file. You must follow the instruction to import data from CSV.
You can create, edit and delete product unit. You can also import brand with CSV file. You must follow the instruction to import data from CSV.
You can create, edit and delete different product tax. You can also import tax with CSV file. You must follow the instruction to import data from CSV.
And you can search, export and print data from table that we discussed in Product section.
You can change Site Title, Site Logo, Currency, Time Zone, Staff Access, Date Format and Theme Color from general settings
You can update user profile info from this module
You can set your own POS settings from this module. You can set default customer, biller, warehouse and how many Featured products will be displayed in the POS module. You have to set your Stripe public and private key for Credit Card Payment. To implement payment with Paypal you have to buy live api from Paypal. You will also need to fillup the following information.
You can set default CheckIn and CheckOut time in HRM Setting.
You can use Bulk SMS service via Twilio and Clickatell. You just have to fill the information correctly to activate this service. Please provide country code to send sms.
Right now this software is supported in 11 language.
If you are not satisfied with our translation go to resources/lang and open your desired language folder and edit the file.php.
Special thanks to Dhiman Barua who made these translation files for our respected customers.
Thanks a lot for using this user friendly software. Hope you found this documentation helpful for using this software. Please support this product by giving your ratings and testimonial.
With best wishes - LionCoders


- Revision 1957648: /wp-property/tags/2.1.9/vendor/libraries/usabilitydynamics/lib-utility/lib
..
class-guid-fix.php
class-job.php
class-loader.php
class-structure.php
class-term.php
class-utility.php
Powered by
Apache Subversion
version 1.9.5 (r1770682).


Feel free to reach out if you want to connect!
Kimberly founded Disrupt Colby in 2016 and takes care of scheduling and organization
Email<EMAIL_ADDRESS>Jonathan has developed web applications and currently helps with contacting alumni.
Email<EMAIL_ADDRESS>Nile Dixon has competed in the Colby business competition and currently runs his own business.
Email<EMAIL_ADDRESS>Brandon has been apart of many app development teams and often codes on his free time.
Email<EMAIL_ADDRESS>Gerry currently runs his own social media consulting business and handles Disrupt Colby's growth and strategy initiatives.
Email<EMAIL_ADDRESS>Tony has been apart of many programming teams and has a strong foundational skill-set with many different programming languages.
Email: ajkarale@colby.edu


class Controller
constructor: ->
A Controller is the object to which HTML elements are bound.
class Controller
constructor: ->
Creates the observer array so child controllers don't inherit this from parents
@_observers = []
@_children = []
@_syncListeners = []
@_closed = false
Watches an expression for changes. Calls the callback
immediately with the initial value and then every time
the value in the expression changes. An expression can be as simple as name
or as complex as
user.firstName + ' ' + user.lastName + ' - ' + user.getPostfix()
watch: (expr, skipTriggerImmediately, callback) ->
if Array.isArray(expr)
if typeof skipTriggerImmediately is 'function'
callback = skipTriggerImmediately
skipTriggerImmediately = false
origCallback = callback
calledThisRound = false
with multiple observers, only call the original callback once on change
callback = ->
return if calledThisRound
calledThisRound = true
setTimeout -> calledThisRound = false
values = observers.map (observer) -> observer.getter()
origCallback values...
observers = expr.map (expr) =>
@watch(expr, true, callback)
unless skipTriggerImmediately
callback()
return observers
if typeof expr is 'function'
getter = expr
else
getter = expression.bind(expr, this)
Store the observers with the controller so when it is closed we can clean up all observers as well
observer = Observer.add getter, skipTriggerImmediately, callback
observer.expr = expr
@_observers.push observer
observer
Stop watching an expression for changes.
unwatch: (expr, callback) ->
@_observers.some (observer, index) =>
if observer.expr is expr and observer.callback is callback
observer.close()
@_observers.splice index, 1
true
else
false
Evaluates an expression immediately, returning the result
eval: (expr, args) ->
if args
options = args: Object.keys(args)
values = options.args.map (key) -> args[key]
expression.get(expr, options).apply(this, values)
Evaluates an expression immediately as a setter, setting value
to the expression running through filters.
evalSetter: (expr, value) ->
return @passthrough().evalSetter(expr, value) if @passthrough() isnt this
expr = expr.replace(/(\s*\||$)/, ' = value$1')
expression.get(expr, args: ['value']).call(this, value)
Creates a bound function which can be called any time to evaluate the expession. extraArgNames
can be provided
to provide for additional data to be passed into the returned function.
Example:
var expr = 'name = firstName + \' \' + lastName'
var setName = controller.getBoundEval(expr, 'firstName', 'lastName')
setName('Jacob', 'Wright')
console.log(controller.name) // equals "Jacob Wright"
getBoundEval: (expr, extraArgNames...) ->
expression.bind(expr, this, args: extraArgNames)
Redirects to the provided URL
redirect: (url, replace = false) ->
@app.redirect(url, replace)
this
Clones the object at the given property name for processing forms
cloneValue: (property) ->
diff.clone @[property]
Removes and closes all observers for garbage-collection
closeController: ->
return if @_closed
@_closed = true
for child in @_children
child._parent = null
child.closeController()
if @_parent?._children
index = @_parent._children.indexOf this
@_parent._children.splice(index, 1) if index isnt -1
@_parent = null
@beforeClose() if @hasOwnProperty('beforeClose')
if @_syncListeners
for listener in @_syncListeners
Observer.removeOnSync listener
delete @_syncListeners
for observer in @_observers
observer.close()
@_observers.length = 0
@onClose() if @hasOwnProperty('onClose')
return
Syncs the observers to propogate changes to the HTML, call callback after
sync: (callback) ->
Observer.sync(callback)
this
Runs the sync on the next tick, call callback after
syncLater: (callback) ->
Observer.syncLater(callback)
this
Syncs the observers to propogate changes to the HTML for this controller only
syncThis: ->
@_observers.forEach (observer) ->
observer.sync()
@_children.forEach (child) ->
child.syncThis()
this
call callback after the current sync
afterSync: (callback) ->
Observer.afterSync callback
this
Runs the listener on every sync, stops once the controller is closed
onSync: (listener) ->
@_syncListeners.push listener
Observer.onSync(listener)
this
Removes a sync listener
removeOnSync: (listener) ->
index = @_syncListeners.indexOf listener
@_syncListeners.splice(index, 1) unless index is -1
Observer.removeOnSync(listener)
this
passthrough: (value) ->
if arguments.length
@_passthrough = value
else
if @hasOwnProperty('_passthrough') then @_passthrough else this
jQuery plugin to get the controller for the given element
$.fn.controller = (passthrough) ->
element = this
while element.length
controller = element.data('controller')
if controller
return if passthrough then controller.passthrough() else controller
element = element.parent()
null
Provides the ‘remove’ event to be dispatched when an element is removed from the DOM and cleaned up. Gets called when an element with the event ‘remove’, is removed from the DOM. Manually call the listener.
unless $.widget
$.cleanData = ((orig) ->
(elems) ->
for elem in elems
try
$(elem).triggerHandler('remove')
catch e
orig elems
)($.cleanData)
chip.Controller = Controller


:
Move Left
: Move Right
: Guitar Attack
: Umbrella Attack
Hello fighters, Welcome to The
FightClub,
Here are the rules :
Before you begin the game.
Please
put your name below and then click "Let's Fight".


'Ulee's Gold'
A movie review by Walter Frith
Peter Fonda turned 58 years old in February and he is beginning to look and sound more and more like his famous father Henry who died in 1982. Fonda has pretty much always taken a back seat in popularity to his sister Jane who retired from movies in 1990 and today is married to billionaire media mogul Ted Turner. Peter Fonda is probably most famous for his 1969 classic film 'Easy Rider' written by Fonda himself along with Dennis Hopper and Terry Southern. Fonda starred in that film but his career has been a mediocre one at best and his daughter Bridget is now carrying the torch for the Fonda family into the next generation.
'Ulee's Gold' is a remarkable comeback opportunity for Peter Fonda and the low-key presentation of the hard driving subject matter is also quite impressive. Fonda plays a bee keeper and honey manufacturer living in central Florida with his two grand daughters and is involved in a friendship with his neighbour (Patricia Richardson) who happens to be a physician. Fonda's son is in a correctional facility after being involved in a robbery with two other men who maintain contact with Fonda's daughter-in-law and she is a recovering drug addict as we discover later in the film. It seems that while high one night she tells the two men about money her husband stashed from the robbery and upon his entrance to jail, kept this a secret. The two criminals want Fonda to locate the money and hand it over to them. Fonda is caught in a moral dilema concerning this crime while caring for the recovery of his daughter-in-law, raising his two daughters and keeping his business running.
This film works because its deliberate slow pace gives the film's entire tone a hint of reality and Fonda plays the aging bee keeper in a seasoned and somewhat sympathetic manner. This is a movie that will find a better audience on video in a few months and 'Ulee's Gold' is intended for mature audiences as it is free from the standard Hollywood trappings with a very ordinary presentation yet powerful message about family and the heartaches sometimes involved.
OUT OF 5> * * * 1/2
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


CLEVELAND MUSEUM OF ART
SHINTO:
DISCOVERY OF THE DIVINE IN JAPANESE ART
DISCOVERY OF THE DIVINE IN JAPANESE ART
Tue, 04/09/2019 to Sun, 06/30/2019
The Kelvin and Eleanor Smith Foundation Exhibition Hall
Admission: $15 • $8 with Ohio ID
The Kelvin and Eleanor Smith Foundation Exhibition Hall
Admission: $15 • $8 with Ohio ID
The veneration of deities called kami has been a central feature of Japanese culture for many centuries and the inspiration for a wide range of Japanese visual art. Most recently, kami veneration falls under the auspices of a diverse body of rites known as Shinto, or the “Way of the Gods.”
The first exploration devoted to Shinto art from collections in both the United States and Japan, this exhibition introduces works exemplifying kami worship from the Heian period (794–1185) through the Edo period (1615–1868).
The first exploration devoted to Shinto art from collections in both the United States and Japan, this exhibition introduces works exemplifying kami worship from the Heian period (794–1185) through the Edo period (1615–1868).


Stepped Hurricane Chart
This stepped hurricane chart uses a series of three error-bars and a set of points to
create a time series.
Features explored in this example:
- Hiding gridlines with xgridlines-visibility and ygridlines-visibility
- The error-bars visual element
- Including extended attributes in an ordinal data set


About this Service:
As part of the first phase of the Network Development and Deployment Initiative(NDDI), the Open Science, Scholarship and Services Exchange(OS3E) provides a coast to coast intra-domain dynamic virtual circuit service, letting users provision VLANs on an OpenFlow based infrastructure. Currently, the NDDI substrate contains 4 OpenFlow 1.0 compatible NEC PF5820 switches in Chicago, Los Angeles, New York and Washington D.C. interconnected with 10GE circuits. This service is based upon the Open Exchange Software Suite(OESS) developed by Indiana University in partnership with Internet2 and Stanford University's Clean Slate program.
Terms of Service:
The Internet2 Network can be used for any legal purpose, so long as it does not interfere with or adversely affect the operation of the Internet2 Network or any network user, as may be determined by Internet2.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object uchicago.src.sim.network.AbstractProbabilityRule
public abstract class AbstractProbabilityRule
Implements some generic functionality for ProbabilityRule-s. The idea here is that this AbstractProbabilityRule contains a vector of weights associated with a list of Objects. Sub-classes can use this vector of weights in their update and getProbability methods. For example, update may add or substract some amount from an objects associated weight and recalculate the probability accordingly.
| Field Summary | |
|---|---|
protected double |
sum
|
protected java.util.Hashtable |
weightMap
|
protected cern.colt.list.FloatArrayList |
weights
|
| Constructor Summary | |
|---|---|
AbstractProbabilityRule(java.util.List objs,
float startWeight)
Creates this AbstractProbabilityRule to operate on the specified list of Objects, and assinging the Objects the specified starting weight. |
|
AbstractProbabilityRule(java.util.List objs,
float startWeight,
java.lang.Object exclude)
Creates this AbstractProbabilityRule to operate on the specified list of Objects, excluding the specified node, and assinging the Objects the specified starting weight. |
| Method Summary | |
|---|---|
void |
addNode(java.lang.Object node,
float startWeight)
Adds a node with the specified weight. |
float |
addToNodeWeight(java.lang.Object node,
float val)
Adds the specified value to the current weight for the specified node. |
protected void |
calcSum()
Calculates the sum of the vector of weights. |
abstract double |
getProbability(java.lang.Object o)
Returns the probability for the specified object. |
protected float |
getWeight(java.lang.Object o)
Gets the weight of the specified node. |
int |
getWeightListIndex(java.lang.Object o)
Returns the index position in the list of weights for the specified object. |
RangeMap |
makeProbabilityMap(RangeMap map)
Recreate the probability map for the list of Objects contained by this AbstractProbabilityRule using the specified RangeMap. |
abstract void |
update(java.lang.Object o)
Performs an update using the specified object. |
abstract void |
update(java.lang.Object o,
float amt)
Performs an update using the specified object and specified amount. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected cern.colt.list.FloatArrayList weights
protected java.util.Hashtable weightMap
protected double sum
| Constructor Detail |
|---|
public AbstractProbabilityRule(java.util.List objs, float startWeight, java.lang.Object exclude)
objs
- the list Objects to calculate probabilities for.startWeight
- the initial weight in the vector of weights for
each nodeexclude
- the object to exclude when working with the Objects listpublic AbstractProbabilityRule(java.util.List objs, float startWeight)
objs
- the list Objects to calculate probabilities for.startWeight
- the initial weight in the vector of weights for
each node| Method Detail |
|---|
public float addToNodeWeight(java.lang.Object node, float val)
node
- the node whose weight is increased (or decreased).val
- the value to increase or decrease the node weight.public void addNode(java.lang.Object node, float startWeight)
protected float getWeight(java.lang.Object o)
public int getWeightListIndex(java.lang.Object o)
public RangeMap makeProbabilityMap(RangeMap map)
makeProbabilityMap
in interface ProbabilityRule
protected void calcSum()
public abstract double getProbability(java.lang.Object o)
ProbabilityRule
getProbability
in interface ProbabilityRule
public abstract void update(java.lang.Object o)
ProbabilityRule
update
in interface ProbabilityRule
public abstract void update(java.lang.Object o, float amt)
ProbabilityRule
update
in interface ProbabilityRule
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


an abstract class for a kaldi GMM More...
Public Member Functions | |
| def | __init__ |
| KaldiGMM constructor. More... | |
| def | train |
| train the GMM | |
| def | align |
| use the GMM to align the training utterances | |
| def | test |
| test the GMM on the testing set | |
| def | name |
| the name of the GMM | |
| def | trainscript |
| the script used for training the GMM | |
| def | confFile |
| the configuration file for this GMM | |
| def | parentGmmLocation |
| the path to the parent GMM model (empty for monophone GMM) | |
| def | trainops |
| the extra options for GMM training | |
| def | graphopts |
| the extra options for the decoding graph creation | |
Public Attributes | |
| conf | |
an abstract class for a kaldi GMM
| def kaldiGMM.KaldiGMM.__init__ | ( | self, | |
| conf | |||
| ) |
KaldiGMM constructor.
| conf | the general configurations |


BABE A film review by Chad Polenz Copyright 1997 Chad Polenz
*** (out of 4 = good) 1995, PG, 92 minutes [1 hour, 32 minutes] [comedy] Starring: Christine Cavanaugh (voice of Babe), James Cromwell (Farmer Hoggett) Magda Szubanski (Mrs. Hoggett), produced by George Miller, Doug Mitchell, Bill Miller, written by George Miller, Chris Noonan, directed by Chris Noonan, based on the novel by Dick King-Smith.
"Babe" is one of the cutest, original, and charming films I've ever seen. How a story about farm animals could have such innocence and be so good amazes me. The film starts off like your typical children's story, it seems like it may be a sappy and boring movie for adults, but surprisingly enough it isn't. It's about an Australian pig named Babe (voiced by Cavanaugh) who was randomly picked to be in a contest to sponsor a charity. Whoever guessed his correct weight won the pig, and that person is our main human character Farmer Hoggett (Cromwell). Babe is the only pig on Hoggett's farm and we see how the other animals consider him somewhat of an outcast. The dogs know their place, they have an important role and are not eaten. The cat is the family's pet and always stays inside the house - her job is to keep the humans happy. Even the sheep and the ducks know they have duties of sorts, but what they all are sure of is pigs have no purpose. Most of the story revolves around Farmer Hoggett training Babe to be a sheep dog. Hoggett enters Babe in the annual sheep dog competition and we watch them go through all the training and see even more interaction between the animals. It's funny to watch the humans get so excited over the animals and vice versa. The screenplay works very well, we get a definite sense of the animals' characters, but it does not get sappy as to make us feel sorry for them. The humans are not played as evil butchers either, we can relate to them too. They're just trying to make a living and they eat animals for food. It's amazing a story like this is doesn't become an anti-meat campaign nor a simple, childish story. "Babe" is a very cute and adorable picture. It's just a nice fairytale about farm animals. (3/18/96) (12/11/96) (5/23/97) [see also "Gordy"]
visit Chad'z Movie Page @ http://members.aol.com/ChadPolenz/index.html
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


{% extends "base.html" %} {% block title %}Get in touch{% endblock %} {% block headlinks %} {% endblock %} {% block contact-nav-class %}active{% endblock %} {% block content %} {% load widget_tweaks %} {% load typogrify_tags %}
{% filter typogrify %}Enter your name, email address and message, and click "Send". Your email address won't ever be sold or shared; it's required only so that I can reply to your message.{% endfilter %}
{% endblock %}


Version 1.3
- Dalvik (Android) support (#13)
- Android TCK (#13)
- Allow to compile on any JVM (#13)
Version 1.2
- Now under Apache 2.0 license
- objenesis.jar is an OSGi bundle
Version 1.1
- Standard support of Aonix PERC (no Serialization support)
Version 1.0
- Initial version, support for Sun Hotspot, GCJ and BEA JRockit JVMs


- FileOps - Class in inputOutput
-
This class will handle all File Reading and Writing
- FileOps() - Constructor for class inputOutput.FileOps
-
- fillCompanyList(String) - Method in class dataManagment.DMComponent
-
Takes a string from the file where data is stored to be persisted and converts the data
from string to object of type Company and adds it to the Company NamedList.
- fillShareholderList(String) - Method in class dataManagment.DMComponent
-
Takes a string from the file where data is stored to be persisted and converts the data
from string to object of type Shareholder and adds it to the Shareholder NamedList.
- findSymbol(String) - Method in class dataManagment.DMComponent
-
This method will look for a Company with a Stock Symbol corresponding
to the Stock Symbol inputed as a parameter to this method.


Three shot dead at Pai Katanga
The Dambai Police command has confirmed the death of three persons who were shot at a funeral at Pai Katanga, a community in the Oti Region.
The gun men were said to have shot six persons, leaving the other three in critical condition.
It is unclear what sparked the shooting which, reports say, occurred around 1 pm on Saturday.
Superintendent Samuel Aboagye of the Dambai Police Command, who confirmed the incident to journalists, however, assured that the situation was under control.
He said the Police in the region have deployed more personnel to the area to maintain law and order.
He also assured the public that the perpetrators of the heinous crime will be brought to book and appealed for cooperation from the public.


The image depicts two surveyors measuring the angles between
themselves and a tree.
Two surveyors, A and P, stand some distance
apart on the south bank
of a river, looking at a tree, T, that is on the north bank of the river.
Points A, P, and T form a triangle. At points A and P, there are two parallel
sight lines pointing north and forming angles outside of the triangle. At
point P, angle TPA is 53 degrees. The adjacent angle between PT and the
northern sight line is 37 degrees. At point A, angle TAP is not labeled,
and the adjacent angle formed between AT and that northern sight line is
32 degrees.
T, A, and P are the three points on a triangle. Angle TPA is 53 degrees
with an adjacent angle of 37 degrees. The angle adjacent to angle TAP is 32 degrees.
Start exploring at the top right.
Can you explain how the distances to T is calculated?


All products purchased from CLOTHE-X can be exchanged within 30 days only if:
You must notify us within 3 days of delivery by writing to<EMAIL_ADDRESS>or calling at 021 580141 in case you want to raise a dispute. CLOTHE-X looks at each dispute on a case-by-case basis and tries to be fair to both parties.
You will be required to email photographic evidence of the defective item at<EMAIL_ADDRESS>within 30 days of purchase before any claims can be processed.
In case an item is found to be faulty or damaged, you will have to send the defective product back to CLOTHE-X within 15 days of purchase. Upon receipt, CLOTHE-X shall issue a replacement against the product mentioned in the Invoice.
Product/item ordered online can be exchanged at any CLOTHE-X Exclusive or retail store.
There are certain scenarios where it is difficult for us to support exchanges. Such scenarios include but are not limited to the following:
CLOTHE-X does not offer a “cash refund” or “Money Back Guarantee” on purchased items.
A “refund” may only be issued if:
CLOTHE-X has the right to cancel orders for reasons such as - item is out of stock, or the credit card payment declined by the issuing financial institution.


Hello and Welcome!
This site might look extremely useless to you, but
it is not. I am using this IP adress to deliver a cloud
based facial recognition solution in my senior design project.
Since you have no interest in this, I will leave you with a few things
I like:


| Library: | Wiring |
| Introduced: | 2.7.0 |
| Appearance: |
A transmission gate has three inputs, called source, n-gate, and p-gate; and it has one output, called drain. When diagrammed, the source input and drain output are drawn connected by two plates; Logisim draws an arrowhead to indicate the direction of flow from input to output. The two gate inputs are drawn as lines connected to plates parallel to each of the plates connecting source to drain. The p-gate input's line has a circle, while the n-gate input's line does not.
| p-gate | ||
| source | drain | |
| n-gate |
The transmission gate is simply the combination of two complementary transistors. Indeed, the same behavior can be achieved in Logisim by using just one transistor. However, designers sometimes prefer to use matched pairs of transistors due to electrical issues with draining voltage that is more complex than Logisim attempts to simulate.
The values at n-gate and p-gate are expected to be opposite to each other. If p-gate is 0 while n-gate is 1, then the value found at source is transmitted to drain. If p-gate is 1 while p-gate is 0, then the connection is broken, so the value at drain is left floating. In all other cases, drain receives an error output — unless source is floating, in which case drain is floating as well. This behavior is summarized by the following table.
| p-gate | n-gate | drain |
|---|---|---|
| 0 | 0 | X* |
| 0 | 1 | source |
| 1 | 0 | Z |
| 1 | 1 | X* |
| X/Z | any | X* |
| any | X/Z | X* |
* If source is Z, drain is Z; otherwise drain is X.
If the Data Bits attribute is more than 1, each gate input is still a single bit, but the gate values are applied simultaneously to each of the source input's bits.
When the component is selected or being added,
Alt-0 through Alt-9 alter its Data Bits
attribute
and the arrow keys alter its Facing
attribute.
None.
None.


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
#include <ql/math/interpolations/kernelinterpolation.hpp>
Public Member Functions | |
| KernelInterpolationImpl (const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, Kernel kernel, const Real epsilon) | |
| void | update () override |
| Real | value (Real x) const override |
| Real | primitive (Real) const override |
| Real | derivative (Real) const override |
| Real | secondDerivative (Real) const override |
| Public Member Functions inherited from Interpolation::templateImpl< I1, I2 > | |
| templateImpl (const I1 &xBegin, const I1 &xEnd, const I2 &yBegin, const int requiredPoints=2) | |
| Real | xMin () const override |
| Real | xMax () const override |
| std::vector< Real > | xValues () const override |
| std::vector< Real > | yValues () const override |
| bool | isInRange (Real x) const override |
| Public Member Functions inherited from Interpolation::Impl | |
| virtual | ~Impl ()=default |
| virtual void | update ()=0 |
| virtual Real | xMin () const =0 |
| virtual Real | xMax () const =0 |
| virtual std::vector< Real > | xValues () const =0 |
| virtual std::vector< Real > | yValues () const =0 |
| virtual bool | isInRange (Real) const =0 |
| virtual Real | value (Real) const =0 |
| virtual Real | primitive (Real) const =0 |
| virtual Real | derivative (Real) const =0 |
| virtual Real | secondDerivative (Real) const =0 |
Private Member Functions | |
| Real | kernelAbs (Real x1, Real x2) const |
| Real | gammaFunc (Real x) const |
| void | updateAlphaVec () |
Private Attributes | |
| Size | xSize_ |
| Real | invPrec_ |
| Matrix | M_ |
| Array | alphaVec_ |
| Array | yVec_ |
| Kernel | kernel_ |
Additional Inherited Members | |
| Protected Member Functions inherited from Interpolation::templateImpl< I1, I2 > | |
| Size | locate (Real x) const |
| Protected Attributes inherited from Interpolation::templateImpl< I1, I2 > | |
| I1 | xBegin_ |
| I1 | xEnd_ |
| I2 | yBegin_ |
Definition at line 37 of file kernelinterpolation.hpp.
| KernelInterpolationImpl | ( | const I1 & | xBegin, |
| const I1 & | xEnd, | ||
| const I2 & | yBegin, | ||
| Kernel | kernel, | ||
| const Real | epsilon | ||
| ) |
Definition at line 40 of file kernelinterpolation.hpp.
|
overridevirtual |
Implements Interpolation::Impl.
Definition at line 49 of file kernelinterpolation.hpp.
Implements Interpolation::Impl.
Definition at line 51 of file kernelinterpolation.hpp.
Implements Interpolation::Impl.
Definition at line 62 of file kernelinterpolation.hpp.
Implements Interpolation::Impl.
Definition at line 67 of file kernelinterpolation.hpp.
Implements Interpolation::Impl.
Definition at line 72 of file kernelinterpolation.hpp.
Definition at line 83 of file kernelinterpolation.hpp.
|
private |
Definition at line 93 of file kernelinterpolation.hpp.
|
private |
Definition at line 124 of file kernelinterpolation.hpp.
|
private |
Definition at line 125 of file kernelinterpolation.hpp.
|
private |
Definition at line 126 of file kernelinterpolation.hpp.
|
private |
Definition at line 127 of file kernelinterpolation.hpp.
|
private |
Definition at line 127 of file kernelinterpolation.hpp.
|
private |
Definition at line 128 of file kernelinterpolation.hpp.


Redirecting to your app now; if you still see this page after a few seconds, try clicking the 'Redirect' button.
If that doesn't work, make sure this device is connected to the same network that your corber build server is running on, and that your build server's address ({{liveReloadUrl}}) can be accessed by other devices on the network.


public class HttpClient
extends java.lang.Object
This class does its best to comply with the "TAXII HTTP Protocol Binding Specification". It handles interaction with a TAXII HTTP server. This includes serializing TAXII Messages, managing the connection to the remote end point, parsing and unmarshaling the responses, and returning a TAXII Message back to the user.
There are two important components of this class.
HttpClient#getHttpClient
This manages the HTTP protocol interaction.
The default constructor will create a simple, pre-configured HttpClient based
on the system properties. If you wish to use an HttpClient configured to use
an explicit proxy, or a security certificate, you will need to construct and
configure it, then apply it to the TAXII HttpClient.
TaxiiXml
objects, stored in taxiiXmlMap
. These objects understand the TAXII JAXB environment.
They are configured to handle parsing and generating a certain version of TAXII
messages. There can be only one TaxiiXml
object per TAXII version.
The default constructor will create TaxiiXml
objects for TAXII 1.0 and 1.1.
You may, for example, want to provide a TaxiiXml
object configured to handle
STIX content blocks as well as TAXII 1.1 messages.
HttpClient taxiiClient = new HttpClient(); final String serverUrl = "http://<IP_ADDRESS>:8080/services/discovery/"; // Prepare the message to send. DiscoveryRequest dr = factory.createDiscoveryRequest() .withMessageId(MessageHelper.generateMessageId()); // Call the service Object responseObj = taxiiClient.callTaxiiService(new URI(serverUrl), dr);
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
HEADER_ACCEPT
HTTP Accept header name
|
static java.lang.String |
HEADER_CONTENT_TYPE
HTTP Content-Type header name
|
static java.lang.String |
HEADER_X_TAXII_ACCEPT
X-TAXII-Accept header name
|
static java.lang.String |
HEADER_X_TAXII_CONTENT_TYPE
X-TAXII-Content-Type header name
|
static java.lang.String |
HEADER_X_TAXII_PROTOCOL
The X-TAXII-Protocol header name
|
static java.lang.String |
HEADER_X_TAXII_SERVICES
The X-TAXII-Services header name
|
static java.lang.String |
SCHEME_HTTP |
static java.lang.String |
SCHEME_HTTPS |
| Constructor and Description |
|---|
HttpClient()
Default constructor.
|
HttpClient(org.apache.http.impl.client.CloseableHttpClient httpClient)
Create a client with a pre-configured Apache HttpClient.
|
HttpClient(TaxiiXml taxiiXml,
org.apache.http.impl.client.CloseableHttpClient httpClient)
Create a client that uses a specific TaxiiXml object and a pre-configured
Apache HttpClient.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
callTaxiiService(java.net.URI uri,
java.lang.Object message)
Send a TAXII message to an endpoint.
|
org.apache.http.impl.client.CloseableHttpClient |
getHttpclient()
Get the Apache Components HTTP Client in use by this object.
|
TaxiiXml |
getVersionHandler(java.lang.String key) |
void |
setHttpclient(org.apache.http.impl.client.CloseableHttpClient httpclient)
Set the Apache Components HTTP Client.
|
void |
setVersionHandler(TaxiiXml taxiiXml)
Assign a TAXII message handler.
|
public static final java.lang.String SCHEME_HTTP
public static final java.lang.String SCHEME_HTTPS
public static final java.lang.String HEADER_ACCEPT
public static final java.lang.String HEADER_CONTENT_TYPE
public static final java.lang.String HEADER_X_TAXII_ACCEPT
public static final java.lang.String HEADER_X_TAXII_CONTENT_TYPE
public static final java.lang.String HEADER_X_TAXII_PROTOCOL
public static final java.lang.String HEADER_X_TAXII_SERVICES
public HttpClient(TaxiiXml taxiiXml, org.apache.http.impl.client.CloseableHttpClient httpClient)
taxiiXml
- httpClient
- public HttpClient(org.apache.http.impl.client.CloseableHttpClient httpClient)
httpClient
- public HttpClient()
public java.lang.Object callTaxiiService(java.net.URI uri, java.lang.Object message) throws javax.xml.bind.JAXBException, java.io.UnsupportedEncodingException, java.io.IOException
TaxiiXml
object in the taxiiXmlMap. If an appropriate message handler cannot be found,
an exception is thrown.
NOTE: It is expected that the response received will match the version of
the message sent. The TAXII specification allows setting multiple values
in the "x-taxii-accept" header. This library only sets and sends the
version of the message being sent.uri
- The address of the endpoint to send the message tomessage
- The message to send.javax.xml.bind.JAXBException
java.io.UnsupportedEncodingException
java.io.IOException
public org.apache.http.impl.client.CloseableHttpClient getHttpclient()
public void setHttpclient(org.apache.http.impl.client.CloseableHttpClient httpclient)
httpclient
- public void setVersionHandler(TaxiiXml taxiiXml)
taxiiXml
- public TaxiiXml getVersionHandler(java.lang.String key)


Module: CardDecks::Decks::Configurable::ClassMethods
- Defined in:
- lib/card_decks/decks/configurable.rb
Instance Attribute Summary (collapse)
-
- (Array<Proc>) combinations
Gets class level combination Proc objects.
-
- (Object) wilds
Returns the value of attribute wilds.
Instance Method Summary (collapse)
-
- (Object) add_combination(method = nil, &block)
Adds a combination to the list of combinations for this class.
-
- (Object) suits_wild!
Class configuration for suits being wild.
-
- (Boolean) suits_wild?
Returns class configuration for suits build wild.
-
- (Object) wild(value = nil, *suits, &block)
Class configuration for setting wild values.
-
- (Hash) wild_config
Class configuration for wild values.
Instance Attribute Details
- (Array<Proc>) combinations
Gets class level combination Proc objects.
142 143 144 |
# File 'lib/card_decks/decks/configurable.rb', line 142 def combinations @combinations ||= [] end |
- (Object) wilds
Returns the value of attribute wilds
86 87 88 |
# File 'lib/card_decks/decks/configurable.rb', line 86 def wilds @wilds end |
Instance Method Details
- (Object) add_combination(method = nil, &block)
Adds a combination to the list of combinations for this class.
128 129 130 131 132 133 134 135 |
# File 'lib/card_decks/decks/configurable.rb', line 128 def add_combination method = nil, &block @combinations ||= [] if block_given? @combinations << block elsif method @combinations << method.to_sym end end |
- (Object) suits_wild!
Class configuration for suits being wild
116 117 118 |
# File 'lib/card_decks/decks/configurable.rb', line 116 def suits_wild! @suits_wild = true end |
- (Boolean) suits_wild?
Returns class configuration for suits build wild
121 122 123 |
# File 'lib/card_decks/decks/configurable.rb', line 121 def suits_wild? @suits_wild end |
- (Object) wild(value = nil, *suits, &block)
Class configuration for setting wild values. Makes a particular card or card for any suit wild on this deck instance.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/card_decks/decks/configurable.rb', line 93 def wild value = nil, *suits, &block @wilds ||= {} if block_given? @wilds[:blocks] ||= [] @wilds[:blocks] << block else if value == :joker @wilds[:joker] = true else suits = self.suits.keys if suits.empty? @wilds[value] = suits end end end |
- (Hash) wild_config
Class configuration for wild values.
111 112 113 |
# File 'lib/card_decks/decks/configurable.rb', line 111 def wild_config @wilds ||= {} end |


Club Manager
Manage Members
Manage Events
Logout
Hello manager,
Welcome to Club Manager 2017.
Current Member count:
Upcoming Event count:


CD-CREATE-PROFILE(1) CD-CREATE-PROFILE(1) NAME cd-create-profile - Color Manager Profile Creation Tool SYNOPSIS cd-create-profile [ --verbose ] DESCRIPTION This manual page documents briefly the cd-create-profile command. cd-create-profile allows an administrator to create ICC profiles on thier system. OPTIONS This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. --help Show summary of options. --description (optional) Sets the profile description. --copyright (optional) Sets the profile copyright. --model (optional) Sets the profile model. --manufacturer (optional) Sets the profile manufacturer. --srgb-palette Specifies a comma seporated values file that is used for the named color. The format of the CSV file must be "Color Name",0-255(red),0-255(green),0-255(blue). --output Specifies the output ICC filename. --nc-prefix (optional) Specifies the named color palette prefix. --nc-suffix (optional) Specifies the named color palette suffix. AUTHOR This manual page was written by Richard Hughes<EMAIL_ADDRESS>8 April,1011 CD-CREATE-PROFILE(1)


California train station worker rescues man from tracks at last minute – video
by AP/As creditedA station employee saved a passenger who had fallen on to the tracks just before a train was about to hit him. John O’Connor was making sure passengers stayed away from the yellow safety strip when the man accidentally fell on to the tracks as the southbound train was approaching the Coliseum station in Oakland, California, on Sunday. Speaking after the incident, O’Connor said he would ‘like to think anybody else standing there would have done the same thing’


SINGLE MACHINE
REQUEST PASSWORD RESET
If you can’t remember your user name or password, enter the email address associated with your account. We’ll send you an email with your user name and a link for resetting your password.
If you can’t remember your user name or password, enter the email address associated with your account. We’ll send you an email with your user name and a link for resetting your password.


This base class implements the NDimensionalDisplayInterface API and is meant, to be extended by various other forms of an NDDI Display, such as a test display and an OpenGL display that will display the framebuffer in a window. More...
#include <BaseNddiDisplay.h>
Public Member Functions | |
| BaseNddiDisplay (std::vector< int > frameVolumeDimensionalSizes, int inputVectorSize) | |
| BaseNddiDisplay (std::vector< int > frameVolumeDimensionalSizes, int displayWidth, int displayHeight, int inputVectorSize) | |
| int | DisplayWidth () |
| Used to query the display width. | |
| int | DisplayHeight () |
| Used to query the display height. | |
| double | PutPixel (Pixel p, std::vector< int > location) |
| Copies the provided pixel to the specified location. | |
| double | CopyPixels (Pixel *p, std::vector< int > start, std::vector< int > end) |
| Copies the one dimensional array of pixels along a particular dimension in the frame volume. | |
| double | FillPixel (Pixel p, std::vector< int > start, std::vector< int > end) |
| Fills the frame volume with the specified pixel. | |
| double | UpdateInputVector (std::vector< int > input) |
| Used to update the input vector with the extra values in the input vector. | |
| double | PutCoefficientMatrix (std::vector< std::vector< int > > coefficientMatrix, std::vector< int > location) |
| Used to copy the specified coefficientMatrix into the specified location of the coefficient plane. | |
| double | FillCoefficientMatrix (std::vector< std::vector< int > > coefficientMatrix, std::vector< int > start, std::vector< int > end) |
| Used to copy the specified coefficientMatrix into a range of locations in the coefficient plane. | |
Protected Member Functions | |
| virtual void | Render ()=0 |
| Renders each pixel of the frame buffer by setting the x, y in the input vector and computing which frame volume pixel to use. | |
| void | UpdateCoefficientMatrix (std::vector< std::vector< int > > coefficientMatrix, std::vector< int > location) |
| Helper function that will update a coefficient matrix at a given position in the coefficient plane. | |
Protected Attributes | |
| int | displayWidth_ |
| Holds the Display Width. | |
| int | displayHeight_ |
| Holds the Display Height. | |
| int | inputVectorSize_ |
| Size of the input vector. | |
| int * | inputVector_ |
| The input vector is represented as an int array. | |
| std::vector< int > | frameVolumeDimensionalSizes_ |
| Holds the sizes of each dimenion of the Frame Volume. | |
| Pixel * | frameVolume_ |
| The frameVolume_ is physcially a flat buffer of Pixels, but it logically managed based on the configured dimensions in the constructor. | |
| int * | coefficientPlane_ |
| The coefficientPlane_ is a flat buffer of coefficient matrices that are logically arranged into rows and columns maching the dimenions of the display. | |
| Pixel * | frameBuffer_ |
| The frameBuffer_ holds the rendered pixels. |
This base class implements the NDimensionalDisplayInterface API and is meant, to be extended by various other forms of an NDDI Display, such as a test display and an OpenGL display that will display the framebuffer in a window.
Definition at line 18 of file BaseNddiDisplay.h.
| double BaseNddiDisplay::CopyPixels | ( | Pixel * | p, | |
| std::vector< int > | start, | |||
| std::vector< int > | end | |||
| ) | [virtual] |
Copies the one dimensional array of pixels along a particular dimension in the frame volume.
In a two-dimensional frame volume, this can be thought of as a way to copy along a row or along a column, but not both since the input pixels are only one-dimensional.
| p | The pointer to the pixel values to be copied. | |
| start | The first pixel in the frame volume to be filled. | |
| end | The last pixel in the frame volume to be filled. All but one of the values in values in this last pixel should be identical to the start pixel. |
Implements nddi::NDimensionalDisplayInterface.
Definition at line 44 of file BaseNddiDisplay.cpp.
| int BaseNddiDisplay::DisplayHeight | ( | ) | [virtual] |
Used to query the display height.
Implements nddi::NDimensionalDisplayInterface.
Definition at line 20 of file BaseNddiDisplay.cpp.
| int BaseNddiDisplay::DisplayWidth | ( | ) | [virtual] |
Used to query the display width.
Implements nddi::NDimensionalDisplayInterface.
Definition at line 16 of file BaseNddiDisplay.cpp.
| double BaseNddiDisplay::FillCoefficientMatrix | ( | std::vector< std::vector< int > > | coefficientMatrix, | |
| std::vector< int > | start, | |||
| std::vector< int > | end | |||
| ) | [virtual] |
Used to copy the specified coefficientMatrix into a range of locations in the coefficient plane.
| coefficientMatrix | This two-dimensional vector holds the matrix to be copied. It's size must match the configuration of the coefficient matrices exactly. Can use COFFICIENT_UNCHANGED for one or more elements. | |
| start | This two-element vector specifies the location in the coefficient plane where the first coefficient matrix will be copied to. | |
| end | This two-element vector specifies the location in the coefficient plane where the last coefficient matrix will be copied to. |
Implements nddi::NDimensionalDisplayInterface.
Reimplemented in GlNddiDisplay.
Definition at line 146 of file BaseNddiDisplay.cpp.
| double BaseNddiDisplay::FillPixel | ( | Pixel | p, | |
| std::vector< int > | start, | |||
| std::vector< int > | end | |||
| ) | [virtual] |
Fills the frame volume with the specified pixel.
It can fill in multiple dimensions by starting at the start pixel and filling in each dimension until the end pixel value is reached.
| p | The pixel value to be filled. | |
| start | The first pixel in the frame volume to be filled. | |
| end | The last pixel in the frame volume to be filled. |
Implements nddi::NDimensionalDisplayInterface.
Definition at line 77 of file BaseNddiDisplay.cpp.
| double BaseNddiDisplay::PutCoefficientMatrix | ( | std::vector< std::vector< int > > | coefficientMatrix, | |
| std::vector< int > | location | |||
| ) | [virtual] |
Used to copy the specified coefficientMatrix into the specified location of the coefficient plane.
| coefficientMatrix | This two-dimensional vector holds the matrix to be copied. It's size must match the configuration of the coefficient matrices exactly. Can use COFFICIENT_UNCHANGED for one or more elements. | |
| location | This two-element vector specifies the location in the coefficient plane where the provided coefficient matrix will be copied. |
Implements nddi::NDimensionalDisplayInterface.
Reimplemented in GlNddiDisplay.
Definition at line 134 of file BaseNddiDisplay.cpp.
| double BaseNddiDisplay::PutPixel | ( | Pixel | p, | |
| std::vector< int > | location | |||
| ) | [virtual] |
Copies the provided pixel to the specified location.
| p | The pixel value to be copied. | |
| location | The location within the frame volume where the pixel will be copied to. |
Implements nddi::NDimensionalDisplayInterface.
Definition at line 24 of file BaseNddiDisplay.cpp.
| virtual void nddi::BaseNddiDisplay::Render | ( | ) | [protected, pure virtual] |
Renders each pixel of the frame buffer by setting the x, y in the input vector and computing which frame volume pixel to use.
| void BaseNddiDisplay::UpdateCoefficientMatrix | ( | std::vector< std::vector< int > > | coefficientMatrix, | |
| std::vector< int > | location | |||
| ) | [protected] |
Helper function that will update a coefficient matrix at a given position in the coefficient plane.
Definition at line 176 of file BaseNddiDisplay.cpp.
| double BaseNddiDisplay::UpdateInputVector | ( | std::vector< int > | input | ) | [virtual] |
Used to update the input vector with the extra values in the input vector.
| input | The values to use for the update. The length of this vector must equal the size of the actual input vector minus two, since the first two values in the input vector cannot be changed. |
Implements nddi::NDimensionalDisplayInterface.
Reimplemented in GlNddiDisplay.
Definition at line 120 of file BaseNddiDisplay.cpp.
int* nddi::BaseNddiDisplay::coefficientPlane_ [protected] |
The coefficientPlane_ is a flat buffer of coefficient matrices that are logically arranged into rows and columns maching the dimenions of the display.
Definition at line 86 of file BaseNddiDisplay.h.
int nddi::BaseNddiDisplay::displayHeight_ [protected] |
Holds the Display Height.
Definition at line 59 of file BaseNddiDisplay.h.
int nddi::BaseNddiDisplay::displayWidth_ [protected] |
Holds the Display Width.
Definition at line 54 of file BaseNddiDisplay.h.
Pixel* nddi::BaseNddiDisplay::frameBuffer_ [protected] |
The frameBuffer_ holds the rendered pixels.
Definition at line 91 of file BaseNddiDisplay.h.
Pixel* nddi::BaseNddiDisplay::frameVolume_ [protected] |
The frameVolume_ is physcially a flat buffer of Pixels, but it logically managed based on the configured dimensions in the constructor.
Definition at line 80 of file BaseNddiDisplay.h.
std::vector<int> nddi::BaseNddiDisplay::frameVolumeDimensionalSizes_ [protected] |
Holds the sizes of each dimenion of the Frame Volume.
Definition at line 74 of file BaseNddiDisplay.h.
int* nddi::BaseNddiDisplay::inputVector_ [protected] |
The input vector is represented as an int array.
Definition at line 69 of file BaseNddiDisplay.h.
int nddi::BaseNddiDisplay::inputVectorSize_ [protected] |
Size of the input vector.
Definition at line 64 of file BaseNddiDisplay.h.


Sam Ward: GB & England hockey player fighting for career after losing sight in left eye
Great Britain and England hockey player Sam Ward says he will do "everything he can" to return to hockey after losing the sight in his left eye.
The 28-year-old was struck in the face by the ball during the Olympic qualifying play-off win against Malaysia on 3 November.
Ward, who scored twice in that game to help GB secure Tokyo 2020 qualification, sustained a crushed retina and facial fractures.
BBC Sport earlier incorrectly reported Ward had retired.
"Over the past week, I have received advice from three separate eye consultants," said Ward.
"They have all told me that I have suffered damage to the retina of my left eye and that this damage is partly irreversible.
"I may get some sight back, but this won't be a quick process, and whether it will be sufficient for me to get back to playing international hockey only time will tell.
"It is a tough pill to swallow but, as people know, I am not one to give up easily and I will do everything I can to make myself available for selection for Tokyo."
GB Hockey says it will be a "number of months" before the extent of the damage to Ward's eye is known.
"Sam has suffered a very serious injury," said performance director Ed Barney.
"Our focus is on supporting Sam to the best possible extent and ensuring that he has access to the best medical provision and wider support. The players and staff wish Sam well during this challenging period."
Ward has scored 72 goals in 126 appearances for Great Britain and England.
He made his international debut in 2014 and represented Great Britain at the Rio 2016 Olympics, before helping England to European and Commonwealth Games bronze in 2017 and 2018 respectively.